在講述可觀測性是什麼之前,我想先和各位來談談監控(Monitoring)。在《可觀測性工程:達成卓越營運》書中提到,當我們將監控和可觀測性混為一談時,就難以展開有意義的討論。
市面上常見的監控工具大多是被動的,擅長偵測和應對已知問題。這讓我想到剛開始工作時,曾經苦惱於該如何設置系統的告警閾值。那時候前輩給我的建議是:「經驗」。
意思是說,這些設定將會因為時間推移和事件發生不斷迭代修正。監控主要協助判斷系統健康狀況;而可觀測性則協助找出問題如何發生、解決未知問題。
近年來因為雲原生、微服務的興起,使得系統的互動變得更為複雜、除錯更加困難。這時候,只發現系統何時出錯已經遠遠不夠,人們逐漸希望系統能提供更多的上下文(Context)線索來排除故障,這也是為什麼可觀測性在近幾年已然成為顯學。
基於上述脈絡,在深入探討可觀測性之前,讓我們先了解目前業界常討論的幾個監控方法論。這些方法論能幫助我們建立系統性的監控思維,從「何時發生錯誤」逐步進展到「為何發生錯誤」。
今天將會和各位介紹兩種結構化的監控方法論,分別是:
這些方法論各有其適用場景,也可以互相搭配使用。接下來讓我們逐一了解它們的核心概念和實際應用。
The Utilization Saturation and Errors (USE Method) 是由 Brendan Gregg 所提出的系統效能監控方法論。他的核心理念就是這個方法論的名稱,「針對每個資源,去檢查使用率、飽和度和錯誤」。
更近一步地說,USE Method 專注於系統效能層面的監控,針對每個資源進行三個維度的檢查:
USE Method 所說的資源主要指硬體資源,例如:
USE Method就是透過逐一檢查每個資源的 U.S.E 三個指標,讓工程師能夠快速定位系統瓶頸。只不過,系統本身可能存在多個效能問題,我們所發現的問題可能只是其中一個。這時候,我們就需要輔以其他方法來做更深入的分析,但 USE Method 仍能夠協助我們不斷迭代所有資源、持續發現問題。
The RED Method 是由 Tom Wilkie 所提出。不同於 USE Method 針對硬體資源的效能,RED Method 主要針對微服務,並以 Rate、Errors、Duration 三種指標來評估其性能。
其實,RED Method 是融合了 USE Method 和 Four Golden Signals 所得出的理論。Four Golden Signals 一詞由 Google 所提出,它主要是針對面向使用者(user-facing)的系統,關注四大訊號,包含了Latency、Traffic、Errors與Saturation。
RED Method 將這兩者進行整合,可以看到 RED Method 的三大指標剛好對應了 Four Golden Signals 中的 Traffic、Errors 和 Latency。針對每個資源,RED Method將會監控:
而在 2023 年的 GrafanaCon EU 上,Tom 也建議並用 USE 與 RED Method。USE Method 專注於機器,而 RED Method 則專注於我們的使用者。換句話說,RED 指標與客戶滿意度有直接相關,因為失敗的的請求數以及請求花費的總時間,都將會直接影響到使用者體驗。
回顧之前的經驗,一年前的我曾經只專注於 USE Method 中關注硬體健康度的指標,但是,當正式環境出現問題時(在上線初期,監控尚未完善的狀況下,這些問題往往都是從客戶端回報),若沒有設置 RED 指標,往往很難一步一步地拆解、發現問題,僅是監控 USE 指標反而無法得知整體服務的全貌。當然另一方面,也有遇過因為硬體出現問題,導致服務受影響的狀況,因此兩者指標可說是相輔相成。
在講可觀測性之前,我認為還是得先了解監控到底是什麼?它做到了哪些事?我們才有辦法繼續深入到可觀測性的精神。USE Method 和 RED Method 則是提供了很好的參考指引,在監控架設初期毫無頭緒時,便可針對方法中的指標來進行架設,再根據產品的發展進行修正與擴展。
之所以會想介紹這三個方法,除了這是較廣為人所知的方法論以外,也是今年 COSCUP 2025 「Philosophy of Observability」議程的講者在演講中所提及,只是當時完全沒聽過這幾個名詞,所以一頭霧水。因此也趁著這次鐵人賽,好好地把這些方法論搞懂,才知道自己日常所做的監控與維運是為何而做、為了達到什麼樣的目的。
監控方法論提供了實務上很好的 Best Practice,但在現今越來越複雜的系統架構中,它在實際應用上仍有一些限制。明天,讓我們來談談可觀測性,以及它在現今複雜系統的維運上扮演著什麼樣的角色。
Charity Majors, Liz Fong-Jones, George Miranda 著. 可觀測性工程|達成卓越營運. 呂健誠譯. 歐萊禮, 2023.
Google SRE book - Ch 6. Monitoring Distributed Systems
The RED Method: How to Instrument Your Services